package com.nineclock.system.service;

import com.nineclock.common.entity.PageResult;
import com.nineclock.system.dto.SysCompanyUserDTO;
import com.nineclock.system.entity.ExcelMember;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;

public interface SysCompanyUserService {
    /**
     * 获取当前登录用户对应企业的主管理员
     * @return
     */
    public SysCompanyUserDTO getCurrentAdmin();

    /**
     * 根据当前登录用户, 获取员工列表
     * @return
     */
    List<SysCompanyUserDTO> queryCompanyMemberList();

    /**
     * 分页查询部门下的员工列表
     * @param page
     * @param pageSize
     * @param keyword
     * @param departmentId
     * @return
     */
    public PageResult<SysCompanyUserDTO> members(Integer page, Integer pageSize, String keyword, Long departmentId);

    /**
     * 批量导入员工数据
     * @param excelFile
     */
    public void importData(MultipartFile excelFile) throws IOException;
    /**
     * 处理解析完毕之后的员工数据, 进行数据组装及持久化操作
     * @param memberList
     */
    public void handleParsedData(List<ExcelMember> memberList);

    /**
     * 根据部门ID, 查询该部门下的员工数量
     * @param departmentIds
     * @return
     */
    public Integer queryUserCountByDepartmentIds(List<Long> departmentIds);

    /**
     * 根据企业ID查询企业的主管理员信息
     * @param companyId
     * @return
     */
    SysCompanyUserDTO queryAdminByCompanyId(Long companyId);

    /**
     * 根据企业id查询所有员工信息
     * @param companyId
     * @return
     */
    List<SysCompanyUserDTO> queryAllUserByCompanyId(Long companyId);
}
